/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package yinshi.fsm;

import java.io.InputStream;

/**
 *
 * @author yinshi
 */
public abstract class Sequence<T> {

    Sequence() {
    }

    public abstract boolean hasNext();

    public abstract T next();

    public abstract T look();

    public static Sequence<Byte> newSequence(InputStream in) {
        final InputStream stream = in;
        return new Sequence<Byte>() {
            private byte buffer;

            public boolean hasNext() {
                return false;
            }

            public Byte next() {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            public Byte look() {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        };
    }
}
